The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
The Internet today provides an extremely efficient means for the distribution of digitized information across the world's computers, with the web browser interface being an excellent means for the display of that information.
One popular implementation of this distribution/display model is the use of dynamically-generated web pages, in which a user-specified Uniform Resource Locator (URL) triggers the immediate creation of a web page, based on the particular information drawn from a database on the host computer.
Although the dynamic structure of the web page must be programmed in one of the web application languages such as PHP or Cold Fusion, a single such dynamic web page provides a potentially unlimited number of different data displays, based on the user's URL-derived selection parameters and also upon the possibly changing values in the host database. Since the programming need be done only one time and for one page, the efficiency of this model is tremendous, and it has become the standard method used for most websites.
The data itself is increasingly likely to reside in a relational database, typically based on the SQL database language, with MySQL, Oracle, and SQL-Server engines being among the most common. Such relational databases provide extremely high performance, efficiency of storage, and huge scalability in potential size.
Although this data distribution/display model has these major advantages, it has faced some obstacles in being conveniently applied to various types of data. Partly for this reason, Internet data has seldom been as fast and easy to display or manipulate as data in a software application residing on one's own computer.
One obstacle is that the URL used to determine the particular data shown on a webpage has effective restrictions on structure. URLs which become too long or complex are inconvenient for an individual to comprehend, manipulate, or save as a link. Maximizing the embedded informational content of a short and minimally complex URL greatly increases the effectiveness of a web display system.
Another obstacle is that many of the data sets potentially available over the Internet are of enormous size and complexity. Programming a single dynamic web page to conveniently display or manipulate such complex data sets may be a difficult undertaking, and easily prone to error.
Finally, many of the current methods for selecting and transferring data between host databases and web pages appear to be slow and inefficient, whether due to their underlying database algorithms or their display techniques. As a result, host databases may become overloaded, client or server bandwidth become clogged, and overall performance is frequently sluggish.
Taken together, these and similar difficulties have considerably restricted the effective display or manipulation of Internet-based data.
Many of these prospective large Internet data sets are hierarchical in structure, being organized into a collected family of data elements of different degrees of generality. Perhaps the most common example of such a hierarchical data set would be the directories and files on a particular computer, in which “child” directories might be contained in other “parent” directories and so forth, up to the highest level of the computer storage.
A standard means of visualizing or displaying hierarchical data has been in the form of a “tree” structure, such as the directory/file tree of a computer's hard drive. This conveniently allows the user to summarize or examine the data at any desired degree of detail by “opening” or “closing” the different nodes or branches of the tree.
Most large hierarchical data sets are either currently stored in relational databases or can quickly and easily be loaded into such database tables. Relational databases place certain important constraints upon the data-sets they contain but consequently provide enormous efficiency in the later manipulation or selection of that data.
As an example, although the descriptive information of the files and directories of a computer hard drive is not typically stored in a relational database table, it can easily be loaded into such a table, with one field being a unique identifier possibly derived from the full pathname, another being the element type (File or Directory), another being the identifier of the parent directory, and others being various other types of additional information associated with the individual files or directories.
SQL databases are the most common examples of relational databases, and typically require data elements to be assigned one or more unique identifiers, which are automatically stored and indexed for rapid retrieval by the database engine itself. Among other characteristics, SQL database engines are optimized for retrieving data selected by unique or non-unique index values and also for merging or “joining” database tables with themselves or With other tables based upon these index values.
A database query which can be written as a single, even highly-complex SQL statement, perhaps containing multiple joins or self-joins, is frequently orders-of-magnitude faster than an equivalent group of database operations in a less efficient database system.